閱讀前,建議可以參考Day1:閱讀指南&為何選擇這個題目?
題目:計算機概論X30天
挑戰內容:連續30天紀錄計算機概論、離散數學、演算法、資料結構等課程的學習內容。
本篇性質:本篇是我一年多來學習心得,適合任何對程式語言有興趣的人閱讀
我的學習心得主要有兩點:
清華大學經濟管理學院教授寧向東曾分享過一個故事,讓我印象深刻。他說
自己在大學的時候,學校會邀請外面厲害的老師來上課。但那時他們班的同學(至少他自己),聽起來很不感興趣,覺得老師講的東西很虛。然而,有另一個班的學生(主要都是已出社會的高管),不知道為什麼,聽起來卻覺得特別實,邊聽邊點頭、抄筆記。
這件事情讓他認識到很多東西,你會覺得它虛,可能在於你的階段還不適合該內容。
就像我在Day1:閱讀指南&為何選擇這個題目?所說的,我覺得對新手最不友善的建議,就是叫他們去學基礎的東西,像是(計算機概論、演算法與資料結構),因為這些新手還用不上。他們是屬於「遠的有用」的知識,而不是「近的有用」。
什麼是「近的有用」?——就是跟你解決當下問題最直接相關
的知識。
什麼是「遠的有用」?——就是跟你解決當下問題間接
or偶然相關
的知識。
舉個很奇怪的例子:
某天,牛頓研究物理到一半,跑去了花園散步。結果,散步散步著,他就被樹上掉下來的蘋果砸到,讓他靈機一動想到「地心引力」。
我們可以說——「如果沒有去花園散步這件事」,牛頓就沒有機會想到地心引力。因此在這個故事中,「散步」是對牛頓「有用」的事情。
但是,一般人學物理,第一件事情難道是去花園散步嗎?不是。
一個人想學物理,第一件事情肯定不是去花園散步,而是去找一本物理教科書讀。因為我們內心都知道,在上面那個故事中,散步是「遠的有用」(而且是特別遠的那種,根本是偶然
有用),「讀書」才真正近的有用。牛頓是因為層次太高,所以任何生活的事件才可以引他產生靈感。
繼續推演下去,很多領域的學習也是這樣的:
一個新手,應該先從「最近的」有用開始學,而不是從「遠的有用」。因為所謂的「遠的有用」不能幫你解決當下的難題,相反的,他們只會讓你覺得茫然,覺得「我到底學這個做什麼?」「我是不是沒有天份」,最後因此從入門到放棄。
為什麼基礎理論很難懂?
因為所謂的「基礎理論」——是現實/經驗
「抽象化」的結果。那什麼是抽象化?所謂的抽象化則是——「對現實資訊的選擇
」(相關內容可以參考我的上一篇文章Day2:[心得]一個語言如果不改變你的思考方式,就不值得學?談程式語言的本質。因此所謂「理論」,其實跟「現實狀況」具有一段距離的。
尼采曾說過「人無法理解它沒有經驗過的事情」
要能夠理解理論,因該要先有基於對現實基礎的認識
。
我的第一個心得就是「ㄧ定不要從所謂的『基礎開始』,直接從最『有用』的部分學起」
第二個心得,就是不要相信「意志力」這個東西——在環境面前,人的意志力根本微不足道。像是,在厲害的人身邊,就算你什麼都不做,也可以變強。在壓力的環境中,就算你不想學,也有人逼你學。
我把環境分為以下幾種:
其中重點是有兩個
我的環境不好怎麼辦?我覺得不用擔心,因為現階段總是有可以觸及的切入點
。
比如說,如果還沒有能力找工作,可以從比賽開始;如果沒有能力比大比賽,就可以從門檻低的小比賽開始;連小比賽沒有的能力,可以從上基礎課程開始。
對於有點基礎的人:可以參加比賽(像是「鐵人賽」每天逼自己學習)、參與線上競賽(六角學院時常會辦比賽)、參與專案(找一些朋友做專案)、設計場景(像是付錢給朋友說好不完成就拿不回錢)
如果連基礎都沒有:可以參與課程(讓老師逼你學習)
其中的秘訣是——要「有意識」的不停跳到更好上面的層次,不要停在某個區域太久
因此我的第二個心得就是「不要相信意志力,要有意識的跳到『更好一點的階段』」
每個階段,有每個階段適合的知識—— 學習不要從基礎開始,直接從「最有用」的部分開始,
要設計自己的環境—— ㄧ定要有意識的跟最厲害的人再一起&到能刺激自己的環境中